Similarity-preserving data hashing techniques may be used for various computer vision tasks (e.g., image search, object recognition, local descriptor compression, etc.). For example, a similarity-preserving data hashing function may map visual features of an original image into a discrete space (e.g., a binary Hamming space) in order to generate a hash code of the original image. The original image may be several hundred kilobytes in size (e.g., a Joint Photographic Experts Group (JPEG) image format), and the hash code is a compact surrogate representation of the original image. The compactness of the hash codes (often in tens of bytes per image) may significantly reduce network bandwidth consumption associated with network-based image search. Further, the compact hash codes may reduce overhead of large-scale visual data storage and may expedite similarity-based search, among other possible benefits.